/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package DAO;

import Fachada.Fachada;
import java.sql.*;
import java.util.Vector;


/**
 *
 * @author GEMA
 */
public class DAOCampaNaArticulo
{
    Fachada fachada;

    public DAOCampaNaArticulo()
    {
        fachada = new Fachada();
    }

    public int guardaCampanaArticulo(String codigoCampana, String codigoArticulo, String fecha)
    {
        String sql_guardar;
        sql_guardar="INSERT INTO CampaNa_Articulo(codigo_campaNa, codigo_articulo, fecha_CampaNa_Articulo) VALUES" +
                "('"+ codigoCampana+ "','"+ codigoArticulo+"','"+fecha+"')" ;

        try
        {
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia=conexion.createStatement();
            int numFilas= sentencia.executeUpdate(sql_guardar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e)
        {
            System.out.println(e);
        }
        catch(Exception e)
        { System.out.println(e);
        }
        return -1;
    }

    public int modificarCodArticulo(String codigoArt, String codigoCampana)
    {
        String sql_modificar;
        sql_modificar = "UPDATE CampaNa_Articulo "+
                        "SET  codigo_articulo = '" + codigoArt + "' " +
                        "WHERE codigo_campaNa = '" + codigoCampana+ "'";

        try
        {
            Connection conn = fachada.ConexionBaseDatos();
            Statement sentencia = conn.createStatement();
            int numFilas = sentencia.executeUpdate(sql_modificar);
            conn.close();
            return numFilas;
        }
        catch(SQLException e){System.out.println(e); }
        catch(Exception e){System.out.println(e); }
        return -1;
    }

     public int modificarFechaCampaNaArticulo(String fecha, String codigoCampana)
    {
        String sql_modificar;
        sql_modificar = "UPDATE CampaNa_Articulo "+
                        "SET  fecha_CampaNa_Articulo = '" + fecha + "' " +
                        "WHERE codigo_campaNa = '" + codigoCampana+ "'";

        try
        {
            Connection conn = fachada.ConexionBaseDatos();
            Statement sentencia = conn.createStatement();
            int numFilas = sentencia.executeUpdate(sql_modificar);
            conn.close();
            return numFilas;
        }
        catch(SQLException e){System.out.println(e); }
        catch(Exception e){System.out.println(e); }
        return -1;
    }

    public int eliminarCampaNaArticulo(String codArticulo)
    {
        String sql_eliminar;

        sql_eliminar = "DELETE FROM CampaNa_Articulo "+
                        "WHERE codigo_articulo = " + "'" +codArticulo + "'";


        try
        {
            Connection conexion = fachada.ConexionBaseDatos();
            Statement sentencia = conexion.createStatement();
            int numFilas = sentencia.executeUpdate(sql_eliminar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e)
        {System.out.println(e); }
        catch(Exception e)
        {System.out.println(e); }
        return -1;
    }

    public Vector <Vector> articulosCampaNa(String fechaInicio, String fechaFin)
    {
        String sql_select;
        sql_select = "SELECT codigo_articulo, nombre_articulo, COUNT(*) AS CantidadCampaNa "+
                     "FROM CampaNa_Articulo NATURAL JOIN Articulo "+
                     "WHERE fecha_CampaNa_Articulo BETWEEN '"+fechaInicio+"' AND '"+fechaFin+"' "+
                     "GROUP BY codigo_articulo, nombre_articulo";

        Vector <Vector> articulos = new Vector <Vector>();

        try
        {
            Connection conn = fachada.ConexionBaseDatos();
            Statement sentencia = conn.createStatement();
            ResultSet tabla = sentencia.executeQuery(sql_select);

            while(tabla.next())
            {
                Vector <String> elArticulo = new Vector <String>();
                elArticulo.addElement(tabla.getString(1));
                elArticulo.addElement(tabla.getString(2));
                elArticulo.addElement(tabla.getString(3));
                articulos.addElement(elArticulo);
            }
            conn.close();
            System.out.println("Conexion cerrada");
            return articulos;
        }
        catch(SQLException e)
        {
            System.out.println(e);
            return null;
        }
        catch(Exception e)
        {
            System.out.println(e);
            return null;
        }
    }

}
